package com.itheima.test2;

import java.util.Scanner;
import java.util.StringJoiner;

public class StringBuilderDemo4 {
    public static void main(String[] args) {
        // 输入阿拉伯数字返回对应的罗马数字
        // 1.键盘录入一个字符串
        Scanner scanner = new Scanner(System.in);

        // 要求：长度小于等于9，只能是数字
        String str;
        while (true) {
            System.out.println("请输入数字:");
            str = scanner.next();
            boolean flag = checkStr(str);
            if (flag) {
                break;
            } else {
                System.out.println("当前数字不符合规则，请重新输入");
            }
        }
        // 得到符合规则的阿拉伯数字
        // 遍历字符串获取对应的罗马数字
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            // 0--->48
            // 1--->49
            // 2--->50
            // 3--->51
            //...
            // 获取字符在ASCII表中对应的值
            int number = c - 48;
            String s = getRomanNumeral(number);
            sb.append(s).append("-").append(i + 1).append("、");
        }

        System.out.println(sb);

    }

    public static String getRomanNumeral(int number) {
        String[] arr = {"", "Ⅰ", "Ⅱ", "Ⅲ", "Ⅳ", "Ⅴ", "Ⅵ", "Ⅶ", "Ⅷ", "Ⅸ"};
        return arr[number];
        /*switch (number) {
            case 0:
                return "";
            case 1:
                return "Ⅰ";
            case 2:
                return "Ⅱ";
            case 3:
                return "Ⅲ";
            case 4:
                return "Ⅳ";
            case 5:
                return "Ⅴ";
            case 6:
                return "Ⅵ";
            case 7:
                return "Ⅶ";
            case 8:
                return "Ⅷ";
            case 9:
                return "Ⅸ";
        }

        return "";*/
    }

    // 定义校验方法  长度小于等于9，只能是数字
    public static boolean checkStr(String str) {
        // 判断长度是否小于等于9

        if (str.length() > 9) {
            return false;
        }

        // 遍历字符串是否包含其他字符
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c < '0' || c > '9') {
                return false;
            }
        }

        return true;
    }
}
